5.6.5. Rajoitettu vuorovaikutus (modal interaction)
Yleensä käyttäjä pystyy määrittelemään, mitä toimintoja hän valitsee käyttöliittymässä ja missä järjestyksessä. Joissakin tapauksissa on kui
tenkin parempi rajoittaa käyttettävissä olevia toimintoja tai määritellä, missä järjestyksessä ne tehdään. Tk:ssa on kaksi tapaa rajoitettuun vuorovaikutukseen: grab ja
Esimerkiksi komennolla
grab set .ikkuna
voidaan rajata käyttäjän toiminnot väliaikaisesti ikkunaan .ikkuna. Hyvä esimerkki tästä on dialogi-ikkuna. tkwait -komennon avulla voidaan pysäyttää sovelluksen muu suorittaminen, kunnes tietty toiminto suoritetaan.
Esimerkiksi komennolla
tkwait window .ikkuna
määrätään, että suoritus jatkuu vasta, kun ohjain .ikkuna on tuhottu.
Seuraavassa esimerkissä käyttäjän mahdollisuudet käsitellä sovellusta on rajattu ylätason ikkunaan .top.
proc aliohjelma {} {
toplevel .top
button .top.b -text "Exit" -command {destroy .top}
pack .top.b
grab set .top ;# rajataan käyttömahdollisuudet .top-ikkunaan
}
aliohjelma
tkwait window .top ;# odotetaan, että ikkuna .top tuhotaan
puts "kissa"
Sana "kissa" tulostetaan ruudulle vasta, kun toplevel-ikkuna on tuhottu komennolla destroy .top.
Luk-tutkielma: Tcl/Tk -opiksi ja iloksi.